const vscode = require('vscode');
const path = require('path');
const util = require('./util');
const fragment = require('./fragment/index');



/**
 * 鼠标悬停提示，当鼠标停在package.json的dependencies或者devDependencies时，
 * 自动显示对应包的名称、版本号和许可协议
 * @param {*} document 
 * @param {*} position 
 * @param {*} token 
 */
function provideHover (document, position, token) {
  const fileName = document.fileName;
  const workDir = path.dirname(fileName);
  const word = document.getText(document.getWordRangeAtPosition(position));

  if (word.indexOf("sky") >= 0) {
    // `* **名称**:呵呵呵呵呵呵 \n* **工作目录**: ${workDir} \n* **单词**: ${word}`
    return new vscode.Hover(`* ${word}配置 \n*` + `${fragment[word]}`);
  }

  // if (/\/package\.json$/.test(fileName)) {
  //     console.log('进入provideHover方法');
  //     const json = document.getText();
  //     if (new RegExp(`"(dependencies|devDependencies)":\\s*?\\{[\\s\\S]*?${word.replace(/\//g, '\\/')}[\\s\\S]*?\\}`, 'gm').test(json)) {
  //         let destPath = `${workDir}/node_modules/${word.replace(/"/g, '')}/package.json`;
  //         if (fs.existsSync(destPath)) {
  //             const content = require(destPath);
  //             console.log('hover已生效');
  //             // hover内容支持markdown语法
  //             // return new vscode.Hover(`* **名称**：${content.name}\n* **版本**：${content.version}\n* **许可协议**：${content.license}`);

  //         }
  //     }
  // }
}

module.exports = function (context) {
  // 注册鼠标悬停提示
  context.subscriptions.push(vscode.languages.registerHoverProvider('*', {
    provideHover
  }));
};